3
תגובות

Cluster Server

פתח PHPDeveloper ,
היי,

נניח ויש לי מערכת גדולה ואני צריך לחלק אותה בין מספר שרתים. השאלה איך זה באמת עובד באתרים גדולים כמו פייסבוק/יוטיוב כאשר מעלים קבצים רבים. יש שרת שאחראי על החלוקה לשרתים אחרים? האם קיים סקריפט כזה שיכול לעזור לי?

3 תשובות

avatar ענה intval ב 26 למרץ 2013 #

כאשר יש לך כמה שרתים שמפעילים קוד מתווסף לתמונה שרת חדש שנקרא Load Balancer

הוא מקבל את כל כל כל הבקשות שמגיאות לאתר שלך ומעביר את הבקשות האלה לאחד מתוך כמה השרתים שמוגדר בהגדרות של ה load balancer לפי כל מיני פרמטרים שהוא מחליט. או בצורה רנדומלית, או לפי עומס עם הוא יודע איזה שרת עמוס יותר, הכלי הפופולורי היום ל Load Balancing זה או nginx למעט שרתים עו HaProxy להרבה שרתים.

רמה אחת מעל כשיש לך לא רק הרבה שרתים אלה השרתים גם מפוזרים בדאטה סנטרים מסביב לעולם - הניטוב מתבצע לא ברמת שרת מנטב (Load balancer) אלה ברמת רשומות ה DNS. כאשר אתה מקליד כתובת של אתר בדפדפן, הדפדפן צריך לקבל משרת ה-DNS את כתובת האיפי שאליה הדפדפן צריך לפנות.
ברמת ה-DNS הניטוב מתבצע על ידי זה, שעבור מדינה מסוימת שרת ה-DNS מחזיר כתובת איפי אחת בדאטה-סנטר אחד ועבור מדינה אחרת הוא מחזיר איפי של שרת במקום אחר. ככה גולשים ממדינה אחת מגיעים לשרתים במקום אחד וגולשים ממדינה אחרת מגיעים לשרתים במקום אחר.

avatar ענה PHPDeveloper ב 26 למרץ 2013 #

תודה אלכס.
ראיתי שיש משהו דומה גם לאפ'צי. בשם mod_proxy_balancer
http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

האם זה בסדר? קראתי שלא ממליצים להשתמש בו אבל לא הבנתי ממש למה..

avatar ענה intval ב 26 למרץ 2013 #

טכנית זה בסדר, אבל חסר תועלת. בגלל שהחלק הקשה שבגללו מפרידים את התוכנה לכמה שרתים זה בדיוק העומס של אפאצ'י.
אם כל הבקשות גם ככה יגיעו לאפאצ'י לא תרוויח הרבה מזה.
שנית, למה אתה בכלל צריך את זה.